# ----------- numpy.random 随机数 --------------------
import numpy as np

# 获取shape为（1000， 20）的随机数，范围：【0， 1）
a = np.random.random((1000, 20))
print(a, a.shape)

# 获取shape为（1000， 20）的随机数，范围：【0， 1）
b = np.random.rand(1000, 20)
print(b, b.shape)

# 获取正太分布的样本
c = np.random.randn(10, 2)
print(c, c.shape)

# 获取标准正太分布随机数
d = np.random.standard_normal(10)
print(d)

# numpy.random.random_integers(low, high=None, size=None)：
# 生成一个整数或一个N维整数数组，取值范围：若high不为None，则取[low,high]之间随机整数，否则取[1,low]之间随机整数。
e = np.random.random_integers(2, 100, (100, 2))
print(e)

# 生成一个[0,1)之间随机浮点数或N维浮点数组
f = np.random.random_sample((100, 2))
print(f, f.shape)

# 随机选取序列中的元素，如果序列为整数，则随机选取range(a)中的随机数
g = np.random.choice([1, 2, 5], size=None, replace=True, p=None)
print(g)

# 对元组进行重新排序, 作用于本身
h = [1, 2, 3]
np.random.shuffle(h)
print(h)

# 同shuffle，但是不做用于旧值，产生新值
i = [1, 2, 3]
j = np.random.permutation(i)
print(i, j)
